package cn.lili.trigger.util;

import cn.lili.trigger.enums.DelayTypeEnums;

/**
 * 延时任务工具类
 *
 * @author paulG
 * @since 2021/5/7
 **/
public class DelayQueueTools {

	/**
	 * 前缀
	 */
	private static final String PREFIX = "{rocketmq_trigger}_";

	/**
	 * 组装延时任务唯一键
	 *
	 * @param type
	 *            延时任务类型
	 * @param id
	 *            id
	 * @return 唯一键
	 */
	public static String wrapperUniqueKey(DelayTypeEnums type, String id) {
		return "{TIME_TRIGGER_" + type.name() + "}_" + id;
	}

	/**
	 * 生成延时任务标识key
	 *
	 * @param executorName
	 *            执行器beanId
	 * @param triggerTime
	 *            执行时间
	 * @param uniqueKey
	 *            自定义表示
	 * @return 延时任务标识key
	 */
	public static String generateKey(String executorName, Long triggerTime, String uniqueKey) {
		return PREFIX + (executorName + triggerTime + uniqueKey).hashCode();
	}

}
